home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / intmail2 / fingerde.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-07-27  |  2.6 KB  |  103 lines

  1. unit FingerDemoMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Mssocket, StdCtrls, ComCtrls, ExtCtrls;
  8.  
  9. type
  10.   TFingerForm = class(TForm)
  11.     Panel1: TPanel;
  12.     ResultsMemo: TMemo;
  13.     StatusBar: TStatusBar;
  14.     Label1: TLabel;
  15.     QueryEdit: TEdit;
  16.     SendQueryButton: TButton;
  17.     CancelButton: TButton;
  18.     msClientSocket1: TmsClientSocket;
  19.     procedure SendQueryButtonClick(Sender: TObject);
  20.     procedure CancelButtonClick(Sender: TObject);
  21.     procedure msClientSocket1Connecting(Sender: TObject);
  22.     procedure msClientSocket1Connected(Sender: TObject);
  23.     procedure msClientSocket1Disconnected(Sender: TObject);
  24.     procedure msClientSocket1TransferProgress(Sender: TObject; Perc,
  25.       ByteCount, LineCount: Longint);
  26.   private
  27.     procedure GetHostAndQuery(var Host, Query: string);
  28.     { Private declarations }
  29.   public
  30.     { Public declarations }
  31.   end;
  32.  
  33. var
  34.   FingerForm: TFingerForm;
  35.  
  36. implementation
  37.  
  38. {$R *.DFM}
  39. procedure TFingerForm.GetHostAndQuery(var Host, Query: string);
  40. var
  41.   i: Integer;
  42. begin
  43.   i:=Pos('@',QueryEdit.Text);
  44.   Host:=Copy(QueryEdit.Text,i+1,Length(QueryEdit.Text));
  45.   Query:=Copy(QueryEdit.Text,1,i-1);
  46. end;
  47.  
  48. procedure TFingerForm.SendQueryButtonClick(Sender: TObject);
  49. var
  50.   Host,Query: string;
  51.   TempStream: TStream;
  52. begin
  53.   ResultsMemo.Clear;
  54.   SendQueryButton.Enabled:=false;
  55.   CancelButton.Enabled:=true;
  56.   try
  57.     GetHostAndQuery(Host,Query);
  58.     msClientSocket1.Host:=Host;
  59.     msClientSocket1.Connect;
  60.     msClientSocket1.SendLine(Query);
  61.     TempStream:=TMemoryStream.Create;
  62.     try
  63.       msClientSocket1.RecvStream(TempStream,-1,0);
  64.       TempStream.Position:=0;
  65.       ResultsMemo.Lines.LoadFromStream(TempStream);
  66.     finally
  67.       TempStream.Free;
  68.     end;
  69.     msClientSocket1.Disconnect;
  70.   finally
  71.     SendQueryButton.Enabled:=true;
  72.     CancelButton.Enabled:=false;
  73.   end;
  74. end;
  75.  
  76. procedure TFingerForm.CancelButtonClick(Sender: TObject);
  77. begin
  78.   msClientSocket1.Cancel;
  79. end;
  80.  
  81. procedure TFingerForm.msClientSocket1Connecting(Sender: TObject);
  82. begin
  83.   StatusBar.SimpleText:='Opening connection with '+msClientSocket1.Host;
  84. end;
  85.  
  86. procedure TFingerForm.msClientSocket1Connected(Sender: TObject);
  87. begin
  88.   StatusBar.SimpleText:='Connected';
  89. end;
  90.  
  91. procedure TFingerForm.msClientSocket1Disconnected(Sender: TObject);
  92. begin
  93.   StatusBar.SimpleText:='Disconnected';
  94. end;
  95.  
  96. procedure TFingerForm.msClientSocket1TransferProgress(Sender: TObject;
  97.   Perc, ByteCount, LineCount: Longint);
  98. begin
  99.   StatusBar.SimpleText:=IntToStr(ByteCount)+' bytes received';
  100. end;
  101.  
  102. end.
  103.